package scalapackage.scalamatch

/**
  * Created by Germmy on 2018/3/30.
  */
object ListMatch {


  def main(args: Array[String]) {


    //Array类型

//    val arr=Array(1,2,3,4)
//
//    arr match {
//
//      case Array(3,b,c,d) => println(s"case0:$b,$d")
//      case Array(_,x,y) => println(s"case1:$x,$y")
//      case _ =>println("no match")
//    }



    //元组,不知道这样写对不对
//    val tuple=(1,2,3,4)
//
//    tuple match{
//
//      case (3,a,b,c) =>println(s"case0:$a,$b")
//      case _ => println("no match")
//    }





    //集合
    val myList=List(1,2,3,4)

    myList match {

//      case a :: b :: c :: d => println(s"case1:$a,$b,$d")
//      case a :: b :: c :: d :: Nil => println(s"case0:$a,$b")

      case 2 :: b :: c  => println(s"case2:$b")//这个很明显，第1个元素就不合
      case a :: b :: c  => println(s"case1:$a,$b")//奇怪，这3个元素，它也能匹配上
      case a :: b :: c ::  Nil => println(s"case0:$a,$b")
      case _ => println("no match")//这个地方是_,不是Nil

    }



  }

}
